﻿Public Class DseparacionVenta

    Public Shared Function SeleccionarXEstado(ByVal descEmpresa As String) As List(Of EseparacionVenta)
        Dim proformas As List(Of EseparacionVenta) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_separacion_selXEstado", cn)
                cmd.CommandType = CommandType.StoredProcedure
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            proformas = New List(Of EseparacionVenta)
                            Dim vendedor As EseparacionVenta = Nothing 'tipo 
                            Do While dr.Read
                                vendedor = New EseparacionVenta( _
                                    dr.GetInt32(dr.GetOrdinal("idProyecto")), _
                                    dr.GetInt32(dr.GetOrdinal("idEtapa")), _
                                    dr.GetInt32(dr.GetOrdinal("idSeparacionVenta")), _
                                    dr.GetInt32(dr.GetOrdinal("idCliente")), _
                                    dr.GetInt32(dr.GetOrdinal("idVendedor")), _
                                    dr.GetInt32(dr.GetOrdinal("ahorroPrevio")), _
                                    dr.GetInt32(dr.GetOrdinal("idEntidadFin")), _
                                    dr.GetDecimal(dr.GetOrdinal("totalSeparacion")), _
                                    dr.GetString(dr.GetOrdinal("fchVencimiento")), _
                                    dr.GetDecimal(dr.GetOrdinal("ctaInicial")), _
                                    dr.GetDecimal(dr.GetOrdinal("financiamiento")), _
                                    dr.GetDecimal(dr.GetOrdinal("saldo")), _
                                    dr.GetDecimal(dr.GetOrdinal("adicional")), _
                                    dr.GetDecimal(dr.GetOrdinal("descuento")), _
                                    dr.GetDecimal(dr.GetOrdinal("total")), _
                                    dr.GetString(dr.GetOrdinal("observacion")), _
                                    dr.GetString(dr.GetOrdinal("estado")), _
                                    dr.GetInt32(dr.GetOrdinal("idUsuario")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoDcmto")), _
                                    dr.GetString(dr.GetOrdinal("nroDocumento")), _
                                    dr.GetInt32(dr.GetOrdinal("edad")), _
                                    dr.GetString(dr.GetOrdinal("nombre")), _
                                    dr.GetString(dr.GetOrdinal("apePaterno")), _
                                    dr.GetString(dr.GetOrdinal("apeMaterno")), _
                                    dr.GetString(dr.GetOrdinal("fchNacimineto")), _
                                    dr.GetInt32(dr.GetOrdinal("idEstCivil")), _
                                    dr.GetInt32(dr.GetOrdinal("nroDependientes")), _
                                    dr.GetInt32(dr.GetOrdinal("sexo")), _
                                    dr.GetInt32(dr.GetOrdinal("idEstudio")), _
                                    dr.GetString(dr.GetOrdinal("nacionalidad")), _
                                    dr.GetString(dr.GetOrdinal("telefonoFijo")), _
                                    dr.GetString(dr.GetOrdinal("telefonoCelular")), _
                                    dr.GetString(dr.GetOrdinal("email")), _
                                    dr.GetString(dr.GetOrdinal("idUbigeo")), _
                                    dr.GetString(dr.GetOrdinal("urbanizacion")), _
                                    dr.GetString(dr.GetOrdinal("direccion")), _
                                    dr.GetInt32(dr.GetOrdinal("separacionBienes")), _
                                    dr.GetString(dr.GetOrdinal("nroPartida")), _
                                    dr.GetInt32(dr.GetOrdinal("idProfesion")), _
                                    dr.GetInt32(dr.GetOrdinal("idOcupacion")), _
                                    dr.GetString(dr.GetOrdinal("ruc")), _
                                    dr.GetString(dr.GetOrdinal("razonSocialLaboral")), _
                                    dr.GetString(dr.GetOrdinal("giro")), _
                                    dr.GetString(dr.GetOrdinal("idUbigeoLaboral")), _
                                    dr.GetString(dr.GetOrdinal("urbanizacionLaboral")), _
                                    dr.GetString(dr.GetOrdinal("direccionLaboral")), _
                                    dr.GetString(dr.GetOrdinal("telefonoLaboral")), _
                                    dr.GetString(dr.GetOrdinal("telefonoLaboral2")), _
                                    dr.GetString(dr.GetOrdinal("puesto")), _
                                    dr.GetInt32(dr.GetOrdinal("antiguedadLaboral")), _
                                    dr.GetString(dr.GetOrdinal("ingresos")))
                                proformas.Add(vendedor)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return proformas
    End Function
    Public Shared Function AñadirSepracion(ByVal descEmpresa As String, ByVal pSeparacionVenta As EseparacionVenta, ByRef idSeparacionVenta As Int32) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_separacionVenta_addSeparacion", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pSeparacionVenta.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pSeparacionVenta.idEtapa
                cmd.Parameters.Add("@idSeparacionVenta", SqlDbType.Int).Direction = ParameterDirection.Output
                cmd.Parameters.Add("@idTempSeparacionVenta", SqlDbType.Int).Value = pSeparacionVenta.idTempSeparacionVenta
                cmd.Parameters.Add("@idProforma", SqlDbType.Int).Value = pSeparacionVenta.idProforma
                'cmd.Parameters.Add("@idCliente", SqlDbType.Int).Value = pSeparacionVenta.idCliente
                cmd.Parameters.Add("@nroDocumento", SqlDbType.Char, 11).Value = pSeparacionVenta.nroDocumento
                cmd.Parameters.Add("@idVendedor", SqlDbType.Int).Value = pSeparacionVenta.idVendedor
                cmd.Parameters.Add("@ahorroPrevio", SqlDbType.Int).Value = pSeparacionVenta.ahorroPrevio
                cmd.Parameters.Add("@idEntidadFin", SqlDbType.Int).Value = pSeparacionVenta.idEntidadFin
                cmd.Parameters.Add("@idCorredora", SqlDbType.Int).Value = pSeparacionVenta.Ecorredora.idCorredora
                cmd.Parameters.Add("@totalSeparacion", SqlDbType.Decimal, 15, 2).Value = pSeparacionVenta.totalSeparacion
                cmd.Parameters.Add("@rutaScannerSeparacion", SqlDbType.VarChar, 80).Value = pSeparacionVenta.rutaScannerSeparacion
                cmd.Parameters.Add("@fchVencimiento", SqlDbType.VarChar, 10).Value = pSeparacionVenta.fchVencimiento
                cmd.Parameters.Add("@fchOperSep", SqlDbType.VarChar, 10).Value = pSeparacionVenta.fchOperacion
                cmd.Parameters.Add("@ctaInicial", SqlDbType.Decimal, 15, 2).Value = pSeparacionVenta.ctaInicial
                cmd.Parameters.Add("@financiamiento", SqlDbType.Decimal, 15, 2).Value = pSeparacionVenta.financiamiento
                cmd.Parameters.Add("@saldo", SqlDbType.Decimal, 15, 2).Value = pSeparacionVenta.saldo
                cmd.Parameters.Add("@adicional", SqlDbType.Decimal, 15, 2).Value = pSeparacionVenta.adicional
                cmd.Parameters.Add("@descuento", SqlDbType.Decimal, 15, 2).Value = pSeparacionVenta.descuento
                cmd.Parameters.Add("@total", SqlDbType.Decimal, 15, 2).Value = pSeparacionVenta.total
                cmd.Parameters.Add("@observacion", SqlDbType.Text).Value = pSeparacionVenta.observacion
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pSeparacionVenta.idUsuario
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    idSeparacionVenta = Convert.ToInt64(cmd.Parameters("@idSeparacionVenta").Value)
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function
    Public Shared Function AñadirSepracionTemporal(ByVal descEmpresa As String, ByVal pSeparacionVenta As EseparacionVenta, ByRef idSeparacionVenta As Int32) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_separacionVentaTemp_addSeparacion", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pSeparacionVenta.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pSeparacionVenta.idEtapa
                cmd.Parameters.Add("@idSeparacionVenta", SqlDbType.Int).Direction = ParameterDirection.Output
                cmd.Parameters.Add("@idProforma", SqlDbType.Int).Value = pSeparacionVenta.idProforma
                'cmd.Parameters.Add("@idCliente", SqlDbType.Int).Value = pSeparacionVenta.idCliente
                cmd.Parameters.Add("@nroDocumento", SqlDbType.Char, 11).Value = pSeparacionVenta.nroDocumento
                cmd.Parameters.Add("@idVendedor", SqlDbType.Int).Value = pSeparacionVenta.idVendedor
                cmd.Parameters.Add("@ahorroPrevio", SqlDbType.Int).Value = pSeparacionVenta.ahorroPrevio
                cmd.Parameters.Add("@idEntidadFin", SqlDbType.Int).Value = pSeparacionVenta.idEntidadFin
                cmd.Parameters.Add("@idCorredora", SqlDbType.Int).Value = pSeparacionVenta.Ecorredora.idCorredora
                cmd.Parameters.Add("@totalSeparacion", SqlDbType.Decimal, 15, 2).Value = pSeparacionVenta.totalSeparacion
                cmd.Parameters.Add("@rutaScannerSeparacion", SqlDbType.VarChar, 80).Value = pSeparacionVenta.rutaScannerSeparacion
                cmd.Parameters.Add("@fchVencimiento", SqlDbType.VarChar, 10).Value = pSeparacionVenta.fchVencimiento
                cmd.Parameters.Add("@fchOperSep", SqlDbType.VarChar, 10).Value = pSeparacionVenta.fchOperacion
                cmd.Parameters.Add("@ctaInicial", SqlDbType.Decimal, 15, 2).Value = pSeparacionVenta.ctaInicial
                cmd.Parameters.Add("@financiamiento", SqlDbType.Decimal, 15, 2).Value = pSeparacionVenta.financiamiento
                cmd.Parameters.Add("@saldo", SqlDbType.Decimal, 15, 2).Value = pSeparacionVenta.saldo
                cmd.Parameters.Add("@adicional", SqlDbType.Decimal, 15, 2).Value = pSeparacionVenta.adicional
                cmd.Parameters.Add("@descuento", SqlDbType.Decimal, 15, 2).Value = pSeparacionVenta.descuento
                cmd.Parameters.Add("@total", SqlDbType.Decimal, 15, 2).Value = pSeparacionVenta.total
                cmd.Parameters.Add("@fchCancelacion", SqlDbType.VarChar, 10).Value = pSeparacionVenta.fchCancelacionTemp
                cmd.Parameters.Add("@observacion", SqlDbType.Text).Value = pSeparacionVenta.observacion
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pSeparacionVenta.idUsuario
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    idSeparacionVenta = Convert.ToInt64(cmd.Parameters("@idSeparacionVenta").Value)
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function
    Public Shared Function AñadirVenta(ByVal descEmpresa As String, ByVal pSeparacionVenta As EseparacionVenta, ByRef idSeparacionVenta As Int32) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_separacionVenta_addVentas", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pSeparacionVenta.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pSeparacionVenta.idEtapa
                cmd.Parameters.Add("@idSeparacionVenta", SqlDbType.Int).Direction = ParameterDirection.Output
                cmd.Parameters.Add("@idProforma", SqlDbType.Int).Value = pSeparacionVenta.idProforma
                'cmd.Parameters.Add("@idCliente", SqlDbType.Int).Value = pSeparacionVenta.idCliente
                cmd.Parameters.Add("@nroDocumento", SqlDbType.Char, 11).Value = pSeparacionVenta.nroDocumento
                cmd.Parameters.Add("@idVendedor", SqlDbType.Int).Value = pSeparacionVenta.idVendedor
                cmd.Parameters.Add("@ahorroPrevio", SqlDbType.Int).Value = pSeparacionVenta.ahorroPrevio
                cmd.Parameters.Add("@idEntidadFin", SqlDbType.Int).Value = pSeparacionVenta.idEntidadFin
                cmd.Parameters.Add("@idCorredora", SqlDbType.Int).Value = pSeparacionVenta.Ecorredora.idCorredora
                cmd.Parameters.Add("@totalSeparacion", SqlDbType.Decimal, 15, 2).Value = pSeparacionVenta.totalSeparacion
                cmd.Parameters.Add("@rutaScannerSeparacion", SqlDbType.VarChar, 80).Value = pSeparacionVenta.rutaScannerSeparacion
                cmd.Parameters.Add("@fchVencimiento", SqlDbType.VarChar, 10).Value = pSeparacionVenta.fchVencimiento
                cmd.Parameters.Add("@ctaInicial", SqlDbType.Decimal, 15, 2).Value = pSeparacionVenta.ctaInicial
                cmd.Parameters.Add("@financiamiento", SqlDbType.Decimal, 15, 2).Value = pSeparacionVenta.financiamiento
                cmd.Parameters.Add("@saldo", SqlDbType.Decimal, 15, 2).Value = pSeparacionVenta.saldo
                cmd.Parameters.Add("@adicional", SqlDbType.Decimal, 15, 2).Value = pSeparacionVenta.adicional
                cmd.Parameters.Add("@descuento", SqlDbType.Decimal, 15, 2).Value = pSeparacionVenta.descuento
                cmd.Parameters.Add("@total", SqlDbType.Decimal, 15, 2).Value = pSeparacionVenta.total
                cmd.Parameters.Add("@observacion", SqlDbType.Text).Value = pSeparacionVenta.observacion
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pSeparacionVenta.idUsuario
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    idSeparacionVenta = Convert.ToInt64(cmd.Parameters("@idSeparacionVenta").Value)
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function
    Public Shared Function ConvertirSepracionVenta(ByVal descEmpresa As String, ByRef idSeparacionVenta As Integer, ByVal pSeparacionVenta As EseparacionVenta) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_separacionVenta_convertSeparacionVenta", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pSeparacionVenta.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pSeparacionVenta.idEtapa
                cmd.Parameters.Add("@idSeparacionVenta", SqlDbType.Int).Value = idSeparacionVenta
                cmd.Parameters.Add("@tpoGestion", SqlDbType.Int).Value = 2 'pSeparacionVenta.tpoGestion
                'cmd.Parameters.Add("@fchVenta", SqlDbType.Char, 10).Value = pSeparacionVenta.fchVenta
                cmd.Parameters.Add("@ahorroPrevio", SqlDbType.Int).Value = pSeparacionVenta.ahorroPrevio
                cmd.Parameters.Add("@idEntidadFin", SqlDbType.Int).Value = pSeparacionVenta.idEntidadFin
                cmd.Parameters.Add("@idCorredora", SqlDbType.Int).Value = pSeparacionVenta.Ecorredora.idCorredora
                cmd.Parameters.Add("@totalSeparacion", SqlDbType.Decimal, 15, 2).Value = pSeparacionVenta.totalSeparacion
                cmd.Parameters.Add("@rutaScannerSeparacion", SqlDbType.VarChar, 100).Value = pSeparacionVenta.rutaScannerSeparacion
                cmd.Parameters.Add("@fchVencimiento", SqlDbType.VarChar, 10).Value = pSeparacionVenta.fchVencimiento
                'cmd.Parameters.Add("@fchOperSep", SqlDbType.VarChar, 10).Value = pSeparacionVenta.fchOperacion
                'cmd.Parameters.Add("@fchCancelacion", SqlDbType.VarChar, 10).Value = pSeparacionVenta.fchCancelacionTemp
                cmd.Parameters.Add("@ctaInicial", SqlDbType.Decimal, 15, 2).Value = pSeparacionVenta.ctaInicial
                cmd.Parameters.Add("@financiamiento", SqlDbType.Decimal, 15, 2).Value = pSeparacionVenta.financiamiento
                cmd.Parameters.Add("@saldo", SqlDbType.Decimal, 15, 2).Value = pSeparacionVenta.saldo
                cmd.Parameters.Add("@adicional", SqlDbType.Decimal, 15, 2).Value = pSeparacionVenta.adicional
                cmd.Parameters.Add("@descuento", SqlDbType.Decimal, 15, 2).Value = pSeparacionVenta.descuento
                cmd.Parameters.Add("@total", SqlDbType.Decimal, 15, 2).Value = pSeparacionVenta.total
                cmd.Parameters.Add("@observacion", SqlDbType.Text).Value = pSeparacionVenta.observacion
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pSeparacionVenta.idUsuario
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function

    '********* ELIMINAR: CUANDO SE UPLOAD VENTAS **********
    Public Shared Function Editar(ByVal descEmpresa As String, ByVal pSeparacionVenta As EseparacionVenta) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_separacionVenta_edit", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pSeparacionVenta.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pSeparacionVenta.idEtapa
                cmd.Parameters.Add("@idSeparacionVenta", SqlDbType.Int).Value = pSeparacionVenta.idSeparacionVenta
                cmd.Parameters.Add("@tpoGestion", SqlDbType.Int).Value = pSeparacionVenta.tpoGestion
                cmd.Parameters.Add("@fchVenta", SqlDbType.Char, 10).Value = pSeparacionVenta.fchVenta
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pSeparacionVenta.idUsuario
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function

    Public Shared Function EditarSeparacion(ByVal descEmpresa As String, ByRef idSeparacionVenta As Integer, ByVal pSeparacionVenta As EseparacionVenta) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_separacionVenta_editSeparacion", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pSeparacionVenta.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pSeparacionVenta.idEtapa
                cmd.Parameters.Add("@idSeparacionVenta", SqlDbType.Int).Value = idSeparacionVenta
                cmd.Parameters.Add("@tpoGestion", SqlDbType.Int).Value = pSeparacionVenta.tpoGestion
                cmd.Parameters.Add("@ahorroPrevio", SqlDbType.Int).Value = pSeparacionVenta.ahorroPrevio
                cmd.Parameters.Add("@idEntidadFin", SqlDbType.Int).Value = pSeparacionVenta.idEntidadFin
                cmd.Parameters.Add("@idCorredora", SqlDbType.Int).Value = pSeparacionVenta.Ecorredora.idCorredora
                cmd.Parameters.Add("@totalSeparacion", SqlDbType.Decimal, 15, 2).Value = pSeparacionVenta.totalSeparacion
                cmd.Parameters.Add("@rutaScannerSeparacion", SqlDbType.VarChar, 100).Value = pSeparacionVenta.rutaScannerSeparacion
                cmd.Parameters.Add("@fchVencimiento", SqlDbType.VarChar, 10).Value = pSeparacionVenta.fchVencimiento
                cmd.Parameters.Add("@fchOperSep", SqlDbType.VarChar, 10).Value = pSeparacionVenta.fchOperacion
                cmd.Parameters.Add("@ctaInicial", SqlDbType.Decimal, 15, 2).Value = pSeparacionVenta.ctaInicial
                cmd.Parameters.Add("@financiamiento", SqlDbType.Decimal, 15, 2).Value = pSeparacionVenta.financiamiento
                cmd.Parameters.Add("@saldo", SqlDbType.Decimal, 15, 2).Value = pSeparacionVenta.saldo
                cmd.Parameters.Add("@adicional", SqlDbType.Decimal, 15, 2).Value = pSeparacionVenta.adicional
                cmd.Parameters.Add("@descuento", SqlDbType.Decimal, 15, 2).Value = pSeparacionVenta.descuento
                cmd.Parameters.Add("@total", SqlDbType.Decimal, 15, 2).Value = pSeparacionVenta.total
                cmd.Parameters.Add("@observacion", SqlDbType.Text).Value = pSeparacionVenta.observacion
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pSeparacionVenta.idUsuario
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function
    Public Shared Function EditarSeparacionTemporal(ByVal descEmpresa As String, ByRef idSeparacionVenta As Integer, ByVal pSeparacionVenta As EseparacionVenta) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_separacionVentaTemp_editSeparacion", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pSeparacionVenta.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pSeparacionVenta.idEtapa
                cmd.Parameters.Add("@idSeparacionVenta", SqlDbType.Int).Value = idSeparacionVenta
                cmd.Parameters.Add("@tpoGestion", SqlDbType.Int).Value = pSeparacionVenta.tpoGestion
                cmd.Parameters.Add("@ahorroPrevio", SqlDbType.Int).Value = pSeparacionVenta.ahorroPrevio
                cmd.Parameters.Add("@idEntidadFin", SqlDbType.Int).Value = pSeparacionVenta.idEntidadFin
                cmd.Parameters.Add("@idCorredora", SqlDbType.Int).Value = pSeparacionVenta.Ecorredora.idCorredora
                cmd.Parameters.Add("@totalSeparacion", SqlDbType.Decimal, 15, 2).Value = pSeparacionVenta.totalSeparacion
                cmd.Parameters.Add("@rutaScannerSeparacion", SqlDbType.VarChar, 100).Value = pSeparacionVenta.rutaScannerSeparacion
                cmd.Parameters.Add("@fchVencimiento", SqlDbType.VarChar, 10).Value = pSeparacionVenta.fchVencimiento
                cmd.Parameters.Add("@fchOperSep", SqlDbType.VarChar, 10).Value = pSeparacionVenta.fchOperacion
                cmd.Parameters.Add("@fchCancelacion", SqlDbType.VarChar, 10).Value = pSeparacionVenta.fchCancelacionTemp
                cmd.Parameters.Add("@ctaInicial", SqlDbType.Decimal, 15, 2).Value = pSeparacionVenta.ctaInicial
                cmd.Parameters.Add("@financiamiento", SqlDbType.Decimal, 15, 2).Value = pSeparacionVenta.financiamiento
                cmd.Parameters.Add("@saldo", SqlDbType.Decimal, 15, 2).Value = pSeparacionVenta.saldo
                cmd.Parameters.Add("@adicional", SqlDbType.Decimal, 15, 2).Value = pSeparacionVenta.adicional
                cmd.Parameters.Add("@descuento", SqlDbType.Decimal, 15, 2).Value = pSeparacionVenta.descuento
                cmd.Parameters.Add("@total", SqlDbType.Decimal, 15, 2).Value = pSeparacionVenta.total
                cmd.Parameters.Add("@observacion", SqlDbType.Text).Value = pSeparacionVenta.observacion
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pSeparacionVenta.idUsuario
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function
    Public Shared Function EditarVenta(ByVal descEmpresa As String, ByRef idSeparacionVenta As Integer, ByVal pSeparacionVenta As EseparacionVenta) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_separacionVenta_editVenta", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pSeparacionVenta.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pSeparacionVenta.idEtapa
                cmd.Parameters.Add("@idSeparacionVenta", SqlDbType.Int).Value = idSeparacionVenta
                cmd.Parameters.Add("@tpoGestion", SqlDbType.Int).Value = pSeparacionVenta.tpoGestion
                cmd.Parameters.Add("@ahorroPrevio", SqlDbType.Int).Value = pSeparacionVenta.ahorroPrevio
                cmd.Parameters.Add("@idEntidadFin", SqlDbType.Int).Value = pSeparacionVenta.idEntidadFin
                cmd.Parameters.Add("@idCorredora", SqlDbType.Int).Value = pSeparacionVenta.Ecorredora.idCorredora
                cmd.Parameters.Add("@totalSeparacion", SqlDbType.Decimal, 15, 2).Value = pSeparacionVenta.totalSeparacion
                cmd.Parameters.Add("@rutaScannerSeparacion", SqlDbType.VarChar, 100).Value = pSeparacionVenta.rutaScannerSeparacion
                cmd.Parameters.Add("@fchVencimiento", SqlDbType.VarChar, 10).Value = pSeparacionVenta.fchVencimiento
                'cmd.Parameters.Add("@fchOperSep", SqlDbType.VarChar, 10).Value = pSeparacionVenta.fchOperacion
                cmd.Parameters.Add("@ctaInicial", SqlDbType.Decimal, 15, 2).Value = pSeparacionVenta.ctaInicial
                cmd.Parameters.Add("@financiamiento", SqlDbType.Decimal, 15, 2).Value = pSeparacionVenta.financiamiento
                cmd.Parameters.Add("@saldo", SqlDbType.Decimal, 15, 2).Value = pSeparacionVenta.saldo
                cmd.Parameters.Add("@adicional", SqlDbType.Decimal, 15, 2).Value = pSeparacionVenta.adicional
                cmd.Parameters.Add("@descuento", SqlDbType.Decimal, 15, 2).Value = pSeparacionVenta.descuento
                cmd.Parameters.Add("@total", SqlDbType.Decimal, 15, 2).Value = pSeparacionVenta.total
                cmd.Parameters.Add("@observacion", SqlDbType.Text).Value = pSeparacionVenta.observacion
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pSeparacionVenta.idUsuario
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function
    Public Shared Function Eliminar(ByVal descEmpresa As String, ByVal pSeparacionVenta As EseparacionVenta) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_separacionVenta_del", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pSeparacionVenta.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pSeparacionVenta.idEtapa
                cmd.Parameters.Add("@idSeparacionVenta", SqlDbType.Int).Value = pSeparacionVenta.idSeparacionVenta
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pSeparacionVenta.idUsuario
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function
    Public Shared Function EliminarTemporal(ByVal descEmpresa As String, ByVal pSeparacionVenta As EseparacionVenta) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_separacionVentaTemp_del", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pSeparacionVenta.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pSeparacionVenta.idEtapa
                cmd.Parameters.Add("@idSeparacionVenta", SqlDbType.Int).Value = pSeparacionVenta.idSeparacionVenta
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pSeparacionVenta.idUsuario
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function
    Public Shared Function FiltrarSeparacion(ByVal descEmpresa As String, ByVal pSeparacionVenta As EseparacionVenta) As List(Of EseparacionVenta)
        Dim separacionVentas As List(Of EseparacionVenta) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_separacionVentaCabecera_filSeparacion", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pSeparacionVenta.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pSeparacionVenta.idEtapa
                cmd.Parameters.Add("@filtro", SqlDbType.VarChar, 55).Value = pSeparacionVenta.filtro
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            separacionVentas = New List(Of EseparacionVenta)
                            Dim separacionVenta As EseparacionVenta = Nothing
                            Do While dr.Read
                                separacionVenta = New EseparacionVenta( _
                                    dr.GetInt32(dr.GetOrdinal("idProyecto")), _
                                    dr.GetInt32(dr.GetOrdinal("idEtapa")), _
                                    dr.GetInt32(dr.GetOrdinal("idSeparacionVenta")), _
                                    dr.GetInt32(dr.GetOrdinal("idCliente")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoDcmto")), _
                                    dr.GetString(dr.GetOrdinal("nroDocumento")), _
                                    dr.GetInt32(dr.GetOrdinal("edad")), _
                                    dr.GetString(dr.GetOrdinal("razonSocial")), _
                                    dr.GetString(dr.GetOrdinal("nombre")), _
                                    dr.GetString(dr.GetOrdinal("apePaterno")), _
                                    dr.GetString(dr.GetOrdinal("apeMaterno")), _
                                    dr.GetString(dr.GetOrdinal("fchNacimineto")), _
                                    dr.GetInt32(dr.GetOrdinal("idEstCivil")), _
                                    dr.GetString(dr.GetOrdinal("desEstCivil")), _
                                    dr.GetInt32(dr.GetOrdinal("nroDependientes")), _
                                    dr.GetInt32(dr.GetOrdinal("sexo")), _
                                    dr.GetInt32(dr.GetOrdinal("idEstudio")), _
                                    dr.GetString(dr.GetOrdinal("nacionalidad")), _
                                    dr.GetString(dr.GetOrdinal("telefonoFijo")), _
                                    dr.GetString(dr.GetOrdinal("telefonoCelular")), _
                                    dr.GetString(dr.GetOrdinal("email")), _
                                    dr.GetString(dr.GetOrdinal("idUbigeo")), _
                                    dr.GetString(dr.GetOrdinal("urbanizacion")), _
                                    dr.GetString(dr.GetOrdinal("direccion")), _
                                    dr.GetInt32(dr.GetOrdinal("separacionBienes")), _
                                    dr.GetString(dr.GetOrdinal("nroPartida")), _
                                    dr.GetString(dr.GetOrdinal("codPago")), _
                                    dr.GetInt32(dr.GetOrdinal("idProfesion")), _
                                    dr.GetInt32(dr.GetOrdinal("idOcupacion")), _
                                    dr.GetString(dr.GetOrdinal("descOcupacion")), _
                                    dr.GetString(dr.GetOrdinal("ruc")), _
                                    dr.GetString(dr.GetOrdinal("razonSocialLaboral")), _
                                    dr.GetString(dr.GetOrdinal("giro")), _
                                    dr.GetString(dr.GetOrdinal("idUbigeoLaboral")), _
                                    dr.GetString(dr.GetOrdinal("urbanizacionLaboral")), _
                                    dr.GetString(dr.GetOrdinal("direccionLaboral")), _
                                    dr.GetString(dr.GetOrdinal("telefonoUno")), _
                                    dr.GetString(dr.GetOrdinal("telefonoDos")), _
                                    dr.GetString(dr.GetOrdinal("puesto")), _
                                    dr.GetInt32(dr.GetOrdinal("antiguedadLaboral")), _
                                    dr.GetDecimal(dr.GetOrdinal("ingresos")), _
                                    dr.GetString(dr.GetOrdinal("telefonoCelularDos")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoPersona")), _
                                    dr.GetInt32(dr.GetOrdinal("idRelacion")), _
                                    dr.GetString(dr.GetOrdinal("rutaScannerSeparacion")), _
                                    dr.GetInt32(dr.GetOrdinal("idVendedor")), _
                                    dr.GetString(dr.GetOrdinal("nombreVendedor")), _
                                    dr.GetString(dr.GetOrdinal("apePatVendedor")), _
                                    dr.GetString(dr.GetOrdinal("apeMatVendedor")), _
                                    dr.GetInt32(dr.GetOrdinal("ahorroPrevio")), _
                                    dr.GetInt32(dr.GetOrdinal("idEntidadFin")), _
                                    dr.GetInt32(dr.GetOrdinal("idCorredora")), _
                                    dr.GetString(dr.GetOrdinal("fchOperSep")), _
                                    dr.GetString(dr.GetOrdinal("fchVencimiento")), _
                                    dr.GetDecimal(dr.GetOrdinal("adicional")), _
                                    dr.GetDecimal(dr.GetOrdinal("descuento")), _
                                    dr.GetDecimal(dr.GetOrdinal("total")), _
                                    dr.GetString(dr.GetOrdinal("observacion")))
                                separacionVentas.Add(separacionVenta)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return separacionVentas
    End Function
    Public Shared Function FiltrarSeparacionCtrl(ByVal descEmpresa As String, ByVal pSeparacionVenta As EseparacionVenta) As List(Of EseparacionVenta)
        Dim separacionVentas As List(Of EseparacionVenta) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_separacionVentaCabecera_filSeparacionCtrl", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pSeparacionVenta.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pSeparacionVenta.idEtapa
                cmd.Parameters.Add("@filtro", SqlDbType.VarChar, 55).Value = pSeparacionVenta.filtro
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            separacionVentas = New List(Of EseparacionVenta)
                            Dim separacionVenta As EseparacionVenta = Nothing
                            Do While dr.Read
                                separacionVenta = New EseparacionVenta( _
                                    dr.GetInt32(dr.GetOrdinal("idProyecto")), _
                                    dr.GetInt32(dr.GetOrdinal("idEtapa")), _
                                    dr.GetInt32(dr.GetOrdinal("idSeparacionVenta")), _
                                    dr.GetInt32(dr.GetOrdinal("idCliente")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoDcmto")), _
                                    dr.GetString(dr.GetOrdinal("nroDocumento")), _
                                    dr.GetInt32(dr.GetOrdinal("edad")), _
                                    dr.GetString(dr.GetOrdinal("razonSocial")), _
                                    dr.GetString(dr.GetOrdinal("nombre")), _
                                    dr.GetString(dr.GetOrdinal("apePaterno")), _
                                    dr.GetString(dr.GetOrdinal("apeMaterno")), _
                                    dr.GetString(dr.GetOrdinal("fchNacimineto")), _
                                    dr.GetInt32(dr.GetOrdinal("idEstCivil")), _
                                    dr.GetString(dr.GetOrdinal("desEstCivil")), _
                                    dr.GetInt32(dr.GetOrdinal("nroDependientes")), _
                                    dr.GetInt32(dr.GetOrdinal("sexo")), _
                                    dr.GetInt32(dr.GetOrdinal("idEstudio")), _
                                    dr.GetString(dr.GetOrdinal("nacionalidad")), _
                                    dr.GetString(dr.GetOrdinal("telefonoFijo")), _
                                    dr.GetString(dr.GetOrdinal("telefonoCelular")), _
                                    dr.GetString(dr.GetOrdinal("email")), _
                                    dr.GetString(dr.GetOrdinal("idUbigeo")), _
                                    dr.GetString(dr.GetOrdinal("urbanizacion")), _
                                    dr.GetString(dr.GetOrdinal("direccion")), _
                                    dr.GetInt32(dr.GetOrdinal("separacionBienes")), _
                                    dr.GetString(dr.GetOrdinal("nroPartida")), _
                                    dr.GetString(dr.GetOrdinal("codPago")), _
                                    dr.GetInt32(dr.GetOrdinal("idProfesion")), _
                                    dr.GetInt32(dr.GetOrdinal("idOcupacion")), _
                                    dr.GetString(dr.GetOrdinal("descOcupacion")), _
                                    dr.GetString(dr.GetOrdinal("ruc")), _
                                    dr.GetString(dr.GetOrdinal("razonSocialLaboral")), _
                                    dr.GetString(dr.GetOrdinal("giro")), _
                                    dr.GetString(dr.GetOrdinal("idUbigeoLaboral")), _
                                    dr.GetString(dr.GetOrdinal("urbanizacionLaboral")), _
                                    dr.GetString(dr.GetOrdinal("direccionLaboral")), _
                                    dr.GetString(dr.GetOrdinal("telefonoUno")), _
                                    dr.GetString(dr.GetOrdinal("telefonoDos")), _
                                    dr.GetString(dr.GetOrdinal("puesto")), _
                                    dr.GetInt32(dr.GetOrdinal("antiguedadLaboral")), _
                                    dr.GetDecimal(dr.GetOrdinal("ingresos")), _
                                    dr.GetString(dr.GetOrdinal("telefonoCelularDos")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoPersona")), _
                                    dr.GetInt32(dr.GetOrdinal("idRelacion")), _
                                    dr.GetString(dr.GetOrdinal("rutaScannerSeparacion")), _
                                    dr.GetInt32(dr.GetOrdinal("idVendedor")), _
                                    dr.GetString(dr.GetOrdinal("nombreVendedor")), _
                                    dr.GetString(dr.GetOrdinal("apePatVendedor")), _
                                    dr.GetString(dr.GetOrdinal("apeMatVendedor")), _
                                    dr.GetInt32(dr.GetOrdinal("ahorroPrevio")), _
                                    dr.GetInt32(dr.GetOrdinal("idEntidadFin")), _
                                    dr.GetInt32(dr.GetOrdinal("idCorredora")), _
                                    dr.GetString(dr.GetOrdinal("fchOperSep")), _
                                    dr.GetString(dr.GetOrdinal("fchVencimiento")), _
                                    dr.GetDecimal(dr.GetOrdinal("adicional")), _
                                    dr.GetDecimal(dr.GetOrdinal("descuento")), _
                                    dr.GetDecimal(dr.GetOrdinal("total")), _
                                    dr.GetString(dr.GetOrdinal("observacion")))
                                separacionVentas.Add(separacionVenta)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return separacionVentas
    End Function
    Public Shared Function FiltrarSeparacionTemporal(ByVal descEmpresa As String, ByVal pSeparacionVenta As EseparacionVenta) As List(Of EseparacionVenta)
        Dim separacionVentas As List(Of EseparacionVenta) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_separacionVentaCabeceraTemp_filSeparacion", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pSeparacionVenta.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pSeparacionVenta.idEtapa
                cmd.Parameters.Add("@filtro", SqlDbType.VarChar, 55).Value = pSeparacionVenta.filtro
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            separacionVentas = New List(Of EseparacionVenta)
                            Dim separacionVenta As EseparacionVenta = Nothing
                            Do While dr.Read
                                separacionVenta = New EseparacionVenta( _
                                    dr.GetInt32(dr.GetOrdinal("idProyecto")), _
                                    dr.GetInt32(dr.GetOrdinal("idEtapa")), _
                                    dr.GetInt32(dr.GetOrdinal("idSeparacionVenta")), _
                                    dr.GetInt32(dr.GetOrdinal("idProforma")), _
                                    dr.GetInt32(dr.GetOrdinal("idCliente")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoDcmto")), _
                                    dr.GetString(dr.GetOrdinal("nroDocumento")), _
                                    dr.GetInt32(dr.GetOrdinal("edad")), _
                                    dr.GetString(dr.GetOrdinal("razonSocial")), _
                                    dr.GetString(dr.GetOrdinal("nombre")), _
                                    dr.GetString(dr.GetOrdinal("apePaterno")), _
                                    dr.GetString(dr.GetOrdinal("apeMaterno")), _
                                    dr.GetString(dr.GetOrdinal("fchNacimineto")), _
                                    dr.GetInt32(dr.GetOrdinal("idEstCivil")), _
                                    dr.GetString(dr.GetOrdinal("desEstCivil")), _
                                    dr.GetInt32(dr.GetOrdinal("nroDependientes")), _
                                    dr.GetInt32(dr.GetOrdinal("sexo")), _
                                    dr.GetInt32(dr.GetOrdinal("idEstudio")), _
                                    dr.GetString(dr.GetOrdinal("nacionalidad")), _
                                    dr.GetString(dr.GetOrdinal("telefonoFijo")), _
                                    dr.GetString(dr.GetOrdinal("telefonoCelular")), _
                                    dr.GetString(dr.GetOrdinal("email")), _
                                    dr.GetString(dr.GetOrdinal("idUbigeo")), _
                                    dr.GetString(dr.GetOrdinal("urbanizacion")), _
                                    dr.GetString(dr.GetOrdinal("direccion")), _
                                    dr.GetInt32(dr.GetOrdinal("separacionBienes")), _
                                    dr.GetString(dr.GetOrdinal("nroPartida")), _
                                    dr.GetString(dr.GetOrdinal("codPago")), _
                                    dr.GetInt32(dr.GetOrdinal("idProfesion")), _
                                    dr.GetInt32(dr.GetOrdinal("idOcupacion")), _
                                    dr.GetString(dr.GetOrdinal("descOcupacion")), _
                                    dr.GetString(dr.GetOrdinal("ruc")), _
                                    dr.GetString(dr.GetOrdinal("razonSocialLaboral")), _
                                    dr.GetString(dr.GetOrdinal("giro")), _
                                    dr.GetString(dr.GetOrdinal("idUbigeoLaboral")), _
                                    dr.GetString(dr.GetOrdinal("urbanizacionLaboral")), _
                                    dr.GetString(dr.GetOrdinal("direccionLaboral")), _
                                    dr.GetString(dr.GetOrdinal("telefonoUno")), _
                                    dr.GetString(dr.GetOrdinal("telefonoDos")), _
                                    dr.GetString(dr.GetOrdinal("puesto")), _
                                    dr.GetInt32(dr.GetOrdinal("antiguedadLaboral")), _
                                    dr.GetDecimal(dr.GetOrdinal("ingresos")), _
                                    dr.GetString(dr.GetOrdinal("telefonoCelularDos")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoPersona")), _
                                    dr.GetInt32(dr.GetOrdinal("idRelacion")), _
                                    dr.GetString(dr.GetOrdinal("rutaScannerSeparacion")), _
                                    dr.GetInt32(dr.GetOrdinal("idVendedor")), _
                                    dr.GetString(dr.GetOrdinal("nombreVendedor")), _
                                    dr.GetString(dr.GetOrdinal("apePatVendedor")), _
                                    dr.GetString(dr.GetOrdinal("apeMatVendedor")), _
                                    dr.GetInt32(dr.GetOrdinal("ahorroPrevio")), _
                                    dr.GetInt32(dr.GetOrdinal("idEntidadFin")), _
                                    dr.GetInt32(dr.GetOrdinal("idCorredora")), _
                                    dr.GetString(dr.GetOrdinal("fchOperSep")), _
                                    dr.GetString(dr.GetOrdinal("fchVencimiento")), _
                                    dr.GetString(dr.GetOrdinal("fchCancelacion")), _
                                    dr.GetDecimal(dr.GetOrdinal("adicional")), _
                                    dr.GetDecimal(dr.GetOrdinal("descuento")), _
                                    dr.GetDecimal(dr.GetOrdinal("total")), _
                                    dr.GetString(dr.GetOrdinal("observacion")))
                                separacionVentas.Add(separacionVenta)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return separacionVentas
    End Function
    Public Shared Function FiltrarSeparacionTemporalCtrl(ByVal descEmpresa As String, ByVal pSeparacionVenta As EseparacionVenta) As List(Of EseparacionVenta)
        Dim separacionVentas As List(Of EseparacionVenta) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_separacionVentaCabeceraTemp_filSeparacionCtrl", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pSeparacionVenta.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pSeparacionVenta.idEtapa
                cmd.Parameters.Add("@filtro", SqlDbType.VarChar, 55).Value = pSeparacionVenta.filtro
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            separacionVentas = New List(Of EseparacionVenta)
                            Dim separacionVenta As EseparacionVenta = Nothing
                            Do While dr.Read
                                separacionVenta = New EseparacionVenta( _
                                    dr.GetInt32(dr.GetOrdinal("idProyecto")), _
                                    dr.GetInt32(dr.GetOrdinal("idEtapa")), _
                                    dr.GetInt32(dr.GetOrdinal("idSeparacionVenta")), _
                                    dr.GetInt32(dr.GetOrdinal("idProforma")), _
                                    dr.GetInt32(dr.GetOrdinal("idCliente")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoDcmto")), _
                                    dr.GetString(dr.GetOrdinal("nroDocumento")), _
                                    dr.GetInt32(dr.GetOrdinal("edad")), _
                                    dr.GetString(dr.GetOrdinal("razonSocial")), _
                                    dr.GetString(dr.GetOrdinal("nombre")), _
                                    dr.GetString(dr.GetOrdinal("apePaterno")), _
                                    dr.GetString(dr.GetOrdinal("apeMaterno")), _
                                    dr.GetString(dr.GetOrdinal("fchNacimineto")), _
                                    dr.GetInt32(dr.GetOrdinal("idEstCivil")), _
                                    dr.GetString(dr.GetOrdinal("desEstCivil")), _
                                    dr.GetInt32(dr.GetOrdinal("nroDependientes")), _
                                    dr.GetInt32(dr.GetOrdinal("sexo")), _
                                    dr.GetInt32(dr.GetOrdinal("idEstudio")), _
                                    dr.GetString(dr.GetOrdinal("nacionalidad")), _
                                    dr.GetString(dr.GetOrdinal("telefonoFijo")), _
                                    dr.GetString(dr.GetOrdinal("telefonoCelular")), _
                                    dr.GetString(dr.GetOrdinal("email")), _
                                    dr.GetString(dr.GetOrdinal("idUbigeo")), _
                                    dr.GetString(dr.GetOrdinal("urbanizacion")), _
                                    dr.GetString(dr.GetOrdinal("direccion")), _
                                    dr.GetInt32(dr.GetOrdinal("separacionBienes")), _
                                    dr.GetString(dr.GetOrdinal("nroPartida")), _
                                    dr.GetString(dr.GetOrdinal("codPago")), _
                                    dr.GetInt32(dr.GetOrdinal("idProfesion")), _
                                    dr.GetInt32(dr.GetOrdinal("idOcupacion")), _
                                    dr.GetString(dr.GetOrdinal("descOcupacion")), _
                                    dr.GetString(dr.GetOrdinal("ruc")), _
                                    dr.GetString(dr.GetOrdinal("razonSocialLaboral")), _
                                    dr.GetString(dr.GetOrdinal("giro")), _
                                    dr.GetString(dr.GetOrdinal("idUbigeoLaboral")), _
                                    dr.GetString(dr.GetOrdinal("urbanizacionLaboral")), _
                                    dr.GetString(dr.GetOrdinal("direccionLaboral")), _
                                    dr.GetString(dr.GetOrdinal("telefonoUno")), _
                                    dr.GetString(dr.GetOrdinal("telefonoDos")), _
                                    dr.GetString(dr.GetOrdinal("puesto")), _
                                    dr.GetInt32(dr.GetOrdinal("antiguedadLaboral")), _
                                    dr.GetDecimal(dr.GetOrdinal("ingresos")), _
                                    dr.GetString(dr.GetOrdinal("telefonoCelularDos")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoPersona")), _
                                    dr.GetInt32(dr.GetOrdinal("idRelacion")), _
                                    dr.GetString(dr.GetOrdinal("rutaScannerSeparacion")), _
                                    dr.GetInt32(dr.GetOrdinal("idVendedor")), _
                                    dr.GetString(dr.GetOrdinal("nombreVendedor")), _
                                    dr.GetString(dr.GetOrdinal("apePatVendedor")), _
                                    dr.GetString(dr.GetOrdinal("apeMatVendedor")), _
                                    dr.GetInt32(dr.GetOrdinal("ahorroPrevio")), _
                                    dr.GetInt32(dr.GetOrdinal("idEntidadFin")), _
                                    dr.GetInt32(dr.GetOrdinal("idCorredora")), _
                                    dr.GetString(dr.GetOrdinal("fchOperSep")), _
                                    dr.GetString(dr.GetOrdinal("fchVencimiento")), _
                                    dr.GetString(dr.GetOrdinal("fchCancelacion")), _
                                    dr.GetDecimal(dr.GetOrdinal("adicional")), _
                                    dr.GetDecimal(dr.GetOrdinal("descuento")), _
                                    dr.GetDecimal(dr.GetOrdinal("total")), _
                                    dr.GetString(dr.GetOrdinal("observacion")))
                                separacionVentas.Add(separacionVenta)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return separacionVentas
    End Function
    Public Shared Function FiltrarVenta(ByVal descEmpresa As String, ByVal pSeparacionVenta As EseparacionVenta) As List(Of EseparacionVenta)
        Dim separacionVentas As List(Of EseparacionVenta) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_separacionVentaCabecera_filVenta", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pSeparacionVenta.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pSeparacionVenta.idEtapa
                cmd.Parameters.Add("@filtro", SqlDbType.VarChar, 55).Value = pSeparacionVenta.filtro
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            separacionVentas = New List(Of EseparacionVenta)
                            Dim separacionVenta As EseparacionVenta = Nothing
                            Do While dr.Read
                                separacionVenta = New EseparacionVenta( _
                                    dr.GetInt32(dr.GetOrdinal("idProyecto")), _
                                    dr.GetInt32(dr.GetOrdinal("idEtapa")), _
                                    dr.GetInt32(dr.GetOrdinal("idSeparacionVenta")), _
                                    dr.GetInt32(dr.GetOrdinal("idCliente")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoDcmto")), _
                                    dr.GetString(dr.GetOrdinal("nroDocumento")), _
                                    dr.GetInt32(dr.GetOrdinal("edad")), _
                                    dr.GetString(dr.GetOrdinal("razonSocial")), _
                                    dr.GetString(dr.GetOrdinal("nombre")), _
                                    dr.GetString(dr.GetOrdinal("apePaterno")), _
                                    dr.GetString(dr.GetOrdinal("apeMaterno")), _
                                    dr.GetString(dr.GetOrdinal("fchNacimineto")), _
                                    dr.GetInt32(dr.GetOrdinal("idEstCivil")), _
                                    dr.GetString(dr.GetOrdinal("desEstCivil")), _
                                    dr.GetInt32(dr.GetOrdinal("nroDependientes")), _
                                    dr.GetInt32(dr.GetOrdinal("sexo")), _
                                    dr.GetInt32(dr.GetOrdinal("idEstudio")), _
                                    dr.GetString(dr.GetOrdinal("nacionalidad")), _
                                    dr.GetString(dr.GetOrdinal("telefonoFijo")), _
                                    dr.GetString(dr.GetOrdinal("telefonoCelular")), _
                                    dr.GetString(dr.GetOrdinal("email")), _
                                    dr.GetString(dr.GetOrdinal("idUbigeo")), _
                                    dr.GetString(dr.GetOrdinal("urbanizacion")), _
                                    dr.GetString(dr.GetOrdinal("direccion")), _
                                    dr.GetInt32(dr.GetOrdinal("separacionBienes")), _
                                    dr.GetString(dr.GetOrdinal("nroPartida")), _
                                    dr.GetString(dr.GetOrdinal("codPago")), _
                                    dr.GetInt32(dr.GetOrdinal("idProfesion")), _
                                    dr.GetInt32(dr.GetOrdinal("idOcupacion")), _
                                    dr.GetString(dr.GetOrdinal("descOcupacion")), _
                                    dr.GetString(dr.GetOrdinal("ruc")), _
                                    dr.GetString(dr.GetOrdinal("razonSocialLaboral")), _
                                    dr.GetString(dr.GetOrdinal("giro")), _
                                    dr.GetString(dr.GetOrdinal("idUbigeoLaboral")), _
                                    dr.GetString(dr.GetOrdinal("urbanizacionLaboral")), _
                                    dr.GetString(dr.GetOrdinal("direccionLaboral")), _
                                    dr.GetString(dr.GetOrdinal("telefonoUno")), _
                                    dr.GetString(dr.GetOrdinal("telefonoDos")), _
                                    dr.GetString(dr.GetOrdinal("puesto")), _
                                    dr.GetInt32(dr.GetOrdinal("antiguedadLaboral")), _
                                    dr.GetDecimal(dr.GetOrdinal("ingresos")), _
                                    dr.GetString(dr.GetOrdinal("telefonoCelularDos")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoPersona")), _
                                    dr.GetInt32(dr.GetOrdinal("idRelacion")), _
                                    dr.GetString(dr.GetOrdinal("rutaScannerSeparacion")), _
                                    dr.GetInt32(dr.GetOrdinal("idVendedor")), _
                                    dr.GetString(dr.GetOrdinal("nombreVendedor")), _
                                    dr.GetString(dr.GetOrdinal("apePatVendedor")), _
                                    dr.GetString(dr.GetOrdinal("apeMatVendedor")), _
                                    dr.GetInt32(dr.GetOrdinal("ahorroPrevio")), _
                                    dr.GetInt32(dr.GetOrdinal("idEntidadFin")), _
                                    dr.GetInt32(dr.GetOrdinal("idCorredora")), _
                                    dr.GetString(dr.GetOrdinal("fchOperSep")), _
                                    dr.GetString(dr.GetOrdinal("fchVencimiento")), _
                                    dr.GetDecimal(dr.GetOrdinal("adicional")), _
                                    dr.GetDecimal(dr.GetOrdinal("descuento")), _
                                    dr.GetDecimal(dr.GetOrdinal("total")), _
                                    dr.GetString(dr.GetOrdinal("observacion")))
                                separacionVentas.Add(separacionVenta)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return separacionVentas
    End Function
    Public Shared Function FiltrarVentaCtrl(ByVal descEmpresa As String, ByVal pSeparacionVenta As EseparacionVenta) As List(Of EseparacionVenta)
        Dim separacionVentas As List(Of EseparacionVenta) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_separacionVentaCabecera_filVentaCtrl", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pSeparacionVenta.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pSeparacionVenta.idEtapa
                cmd.Parameters.Add("@filtro", SqlDbType.VarChar, 55).Value = pSeparacionVenta.filtro
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            separacionVentas = New List(Of EseparacionVenta)
                            Dim separacionVenta As EseparacionVenta = Nothing
                            Do While dr.Read
                                separacionVenta = New EseparacionVenta( _
                                    dr.GetInt32(dr.GetOrdinal("idProyecto")), _
                                    dr.GetInt32(dr.GetOrdinal("idEtapa")), _
                                    dr.GetInt32(dr.GetOrdinal("idSeparacionVenta")), _
                                    dr.GetInt32(dr.GetOrdinal("idCliente")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoDcmto")), _
                                    dr.GetString(dr.GetOrdinal("nroDocumento")), _
                                    dr.GetInt32(dr.GetOrdinal("edad")), _
                                    dr.GetString(dr.GetOrdinal("razonSocial")), _
                                    dr.GetString(dr.GetOrdinal("nombre")), _
                                    dr.GetString(dr.GetOrdinal("apePaterno")), _
                                    dr.GetString(dr.GetOrdinal("apeMaterno")), _
                                    dr.GetString(dr.GetOrdinal("fchNacimineto")), _
                                    dr.GetInt32(dr.GetOrdinal("idEstCivil")), _
                                    dr.GetString(dr.GetOrdinal("desEstCivil")), _
                                    dr.GetInt32(dr.GetOrdinal("nroDependientes")), _
                                    dr.GetInt32(dr.GetOrdinal("sexo")), _
                                    dr.GetInt32(dr.GetOrdinal("idEstudio")), _
                                    dr.GetString(dr.GetOrdinal("nacionalidad")), _
                                    dr.GetString(dr.GetOrdinal("telefonoFijo")), _
                                    dr.GetString(dr.GetOrdinal("telefonoCelular")), _
                                    dr.GetString(dr.GetOrdinal("email")), _
                                    dr.GetString(dr.GetOrdinal("idUbigeo")), _
                                    dr.GetString(dr.GetOrdinal("urbanizacion")), _
                                    dr.GetString(dr.GetOrdinal("direccion")), _
                                    dr.GetInt32(dr.GetOrdinal("separacionBienes")), _
                                    dr.GetString(dr.GetOrdinal("nroPartida")), _
                                    dr.GetString(dr.GetOrdinal("codPago")), _
                                    dr.GetInt32(dr.GetOrdinal("idProfesion")), _
                                    dr.GetInt32(dr.GetOrdinal("idOcupacion")), _
                                    dr.GetString(dr.GetOrdinal("descOcupacion")), _
                                    dr.GetString(dr.GetOrdinal("ruc")), _
                                    dr.GetString(dr.GetOrdinal("razonSocialLaboral")), _
                                    dr.GetString(dr.GetOrdinal("giro")), _
                                    dr.GetString(dr.GetOrdinal("idUbigeoLaboral")), _
                                    dr.GetString(dr.GetOrdinal("urbanizacionLaboral")), _
                                    dr.GetString(dr.GetOrdinal("direccionLaboral")), _
                                    dr.GetString(dr.GetOrdinal("telefonoUno")), _
                                    dr.GetString(dr.GetOrdinal("telefonoDos")), _
                                    dr.GetString(dr.GetOrdinal("puesto")), _
                                    dr.GetInt32(dr.GetOrdinal("antiguedadLaboral")), _
                                    dr.GetDecimal(dr.GetOrdinal("ingresos")), _
                                    dr.GetString(dr.GetOrdinal("telefonoCelularDos")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoPersona")), _
                                    dr.GetInt32(dr.GetOrdinal("idRelacion")), _
                                    dr.GetString(dr.GetOrdinal("rutaScannerSeparacion")), _
                                    dr.GetInt32(dr.GetOrdinal("idVendedor")), _
                                    dr.GetString(dr.GetOrdinal("nombreVendedor")), _
                                    dr.GetString(dr.GetOrdinal("apePatVendedor")), _
                                    dr.GetString(dr.GetOrdinal("apeMatVendedor")), _
                                    dr.GetInt32(dr.GetOrdinal("ahorroPrevio")), _
                                    dr.GetInt32(dr.GetOrdinal("idEntidadFin")), _
                                    dr.GetInt32(dr.GetOrdinal("idCorredora")), _
                                    dr.GetString(dr.GetOrdinal("fchOperSep")), _
                                    dr.GetString(dr.GetOrdinal("fchVencimiento")), _
                                    dr.GetDecimal(dr.GetOrdinal("adicional")), _
                                    dr.GetDecimal(dr.GetOrdinal("descuento")), _
                                    dr.GetDecimal(dr.GetOrdinal("total")), _
                                    dr.GetString(dr.GetOrdinal("observacion")))
                                separacionVentas.Add(separacionVenta)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return separacionVentas
    End Function

    '-------    MENU SEGUIMIENTO    --------'
    Public Shared Function SeleccionarSeguimiento(ByVal descEmpresa As String, ByVal filtro As String, ByVal pSeparacionVenta As EseparacionVenta) As List(Of EseparacionVenta)
        Dim proformas As List(Of EseparacionVenta) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_separacionVentaSeguimiento_sel", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pSeparacionVenta.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pSeparacionVenta.idEtapa
                cmd.Parameters.Add("@filtro", SqlDbType.VarChar, 55).Value = filtro
                cmd.Parameters.Add("@tpoGestion", SqlDbType.Int).Value = pSeparacionVenta.tpoGestion
                cmd.Parameters.Add("@idEntidad", SqlDbType.Int).Value = pSeparacionVenta.idEntidadFin
                cmd.Parameters.Add("@nroKardex", SqlDbType.VarChar, 55).Value = pSeparacionVenta.nroKardex
                cmd.Parameters.Add("@fchInicio", SqlDbType.Char, 10).Value = pSeparacionVenta.fchInicio
                cmd.Parameters.Add("@fchFin", SqlDbType.Char, 10).Value = pSeparacionVenta.fchFin
                cmd.Parameters.Add("@idFormaPago", SqlDbType.Int).Value = pSeparacionVenta.idFormaPago
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            proformas = New List(Of EseparacionVenta)
                            Dim vendedor As EseparacionVenta = Nothing 'tipo 
                            Do While dr.Read
                                vendedor = New EseparacionVenta( _
                                    dr.GetInt32(dr.GetOrdinal("idProyecto")), _
                                    dr.GetInt32(dr.GetOrdinal("idEtapa")), _
                                    dr.GetInt32(dr.GetOrdinal("idSeparacionVenta")), _
                                    dr.GetString(dr.GetOrdinal("fchSeparacion")), _
                                    dr.GetString(dr.GetOrdinal("fchVenta")), _
                                    dr.GetString(dr.GetOrdinal("nombre")), _
                                    dr.GetString(dr.GetOrdinal("apePaterno")), _
                                    dr.GetString(dr.GetOrdinal("apeMaterno")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoDcmto")), _
                                    dr.GetString(dr.GetOrdinal("descTpoDcmto")), _
                                    dr.GetString(dr.GetOrdinal("nroDocumento")), _
                                    dr.GetString(dr.GetOrdinal("telefonoFijo")), _
                                    dr.GetDecimal(dr.GetOrdinal("financiamiento")), _
                                    dr.GetInt32(dr.GetOrdinal("idEntidadFin")), _
                                    dr.GetString(dr.GetOrdinal("descEntidadFin")), _
                                    dr.GetString(dr.GetOrdinal("descFormaPago")), _
                                    dr.GetString(dr.GetOrdinal("descSeguimiento")), _
                                    dr.GetInt32(dr.GetOrdinal("tpoGestion")), _
                                    dr.GetString(dr.GetOrdinal("descGestion")), _
                                    dr.GetInt32(dr.GetOrdinal("idUsuario")))
                                proformas.Add(vendedor)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return proformas
    End Function
    Public Shared Function SeleccionarSeguimientoEntrega(ByVal descEmpresa As String, ByVal pSeparacionVenta As EseparacionVenta) As EseparacionVenta
        Dim separacionVenta As EseparacionVenta = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_separacionVentaSeguimientoEntrega_sel", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pSeparacionVenta.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pSeparacionVenta.idEtapa
                cmd.Parameters.Add("@idSeparacionVenta", SqlDbType.Int).Value = pSeparacionVenta.idSeparacionVenta
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleRow Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            Do While dr.Read
                                separacionVenta = New EseparacionVenta( _
                                    dr.GetInt32(dr.GetOrdinal("idProyecto")), _
                                    dr.GetInt32(dr.GetOrdinal("idEtapa")), _
                                    dr.GetInt32(dr.GetOrdinal("idSeparacionVenta")), _
                                    dr.GetString(dr.GetOrdinal("fchEntrega")), _
                                    dr.GetString(dr.GetOrdinal("obsEntrega")), _
                                    dr.GetInt32(dr.GetOrdinal("idNotaria")), _
                                    dr.GetString(dr.GetOrdinal("descNotaria")), _
                                    dr.GetString(dr.GetOrdinal("nroKardex")), _
                                    dr.GetString(dr.GetOrdinal("nroTitulo")), _
                                    dr.GetString(dr.GetOrdinal("obsNotaria")), _
                                    dr.GetInt32(dr.GetOrdinal("idUsuario")))
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return separacionVenta
    End Function
    Public Shared Function EditarSeguimiento(ByVal descEmpresa As String, ByVal pSeparacionVenta As EseparacionVenta) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_separacionVenta_editSeguimiento", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pSeparacionVenta.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pSeparacionVenta.idEtapa
                cmd.Parameters.Add("@idSeparacionVenta", SqlDbType.Int).Value = pSeparacionVenta.idSeparacionVenta
                cmd.Parameters.Add("@fchEntrega", SqlDbType.Char, 10).Value = pSeparacionVenta.fchEntrega
                cmd.Parameters.Add("@obsEntrega", SqlDbType.Text).Value = pSeparacionVenta.obsEntrega
                cmd.Parameters.Add("@idNotaria", SqlDbType.Int).Value = pSeparacionVenta.idNotaria
                cmd.Parameters.Add("@nroKardex", SqlDbType.VarChar, 55).Value = pSeparacionVenta.nroKardex
                cmd.Parameters.Add("@nroTitulo", SqlDbType.VarChar, 55).Value = pSeparacionVenta.nroTitulo
                cmd.Parameters.Add("@obsNotaria", SqlDbType.Text).Value = pSeparacionVenta.obsNotaria
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pSeparacionVenta.idUsuario
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function

    '-------    MENU REPORTE    ------------'
    Public Shared Function ReporteSeparacion(ByVal descEmpresa As String, ByVal pSeparacionVenta As EseparacionVenta) As List(Of EseparacionVenta)
        Dim proformas As List(Of EseparacionVenta) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_separacion_rpt", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pSeparacionVenta.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pSeparacionVenta.idEtapa
                cmd.Parameters.Add("@idVendedor", SqlDbType.Int).Value = pSeparacionVenta.idVendedor
                cmd.Parameters.Add("@fchInicio", SqlDbType.Char, 10).Value = pSeparacionVenta.fchInicio
                cmd.Parameters.Add("@fchFin", SqlDbType.Char, 10).Value = pSeparacionVenta.fchFin
                cmd.Parameters.Add("@filtro", SqlDbType.VarChar, 55).Value = pSeparacionVenta.filtro
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            proformas = New List(Of EseparacionVenta)
                            Dim vendedor As EseparacionVenta = Nothing 'tipo 
                            Do While dr.Read
                                vendedor = New EseparacionVenta( _
                                    dr.GetInt32(dr.GetOrdinal("idProyecto")), _
                                    dr.GetInt32(dr.GetOrdinal("idEtapa")), _
                                    dr.GetInt32(dr.GetOrdinal("idSeparacionVenta")), _
                                    dr.GetString(dr.GetOrdinal("fchOperSep")), _
                                    dr.GetString(dr.GetOrdinal("nombre")), _
                                    dr.GetString(dr.GetOrdinal("apePaterno")), _
                                    dr.GetString(dr.GetOrdinal("apeMaterno")), _
                                    dr.GetString(dr.GetOrdinal("razonSocial")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoDcmto")), _
                                    dr.GetString(dr.GetOrdinal("descTpoDcmto")), _
                                    dr.GetString(dr.GetOrdinal("nroDocumento")), _
                                    dr.GetString(dr.GetOrdinal("telefonoFijo")), _
                                    dr.GetString(dr.GetOrdinal("telefonoCelular")), _
                                    dr.GetDecimal(dr.GetOrdinal("totalPrecioVenta")), _
                                    dr.GetDecimal(dr.GetOrdinal("totalSeparacion")), _
                                    dr.GetDecimal(dr.GetOrdinal("ctaInicial")), _
                                    dr.GetString(dr.GetOrdinal("descFormaPago")), _
                                    dr.GetString(dr.GetOrdinal("descEntidadFin")), _
                                    dr.GetString(dr.GetOrdinal("fchVencimiento")), _
                                    dr.GetDecimal(dr.GetOrdinal("financiamiento")), _
                                    dr.GetDecimal(dr.GetOrdinal("saldo")), _
                                    dr.GetDecimal(dr.GetOrdinal("adicional")), _
                                    dr.GetDecimal(dr.GetOrdinal("descuento")), _
                                    dr.GetDecimal(dr.GetOrdinal("total")), _
                                    dr.GetString(dr.GetOrdinal("observacion")), _
                                    dr.GetString(dr.GetOrdinal("estado")), _
                                    dr.GetInt32(dr.GetOrdinal("idUsuario")))
                                proformas.Add(vendedor)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return proformas
    End Function
    Public Shared Function ReporteVenta(ByVal descEmpresa As String, ByVal pSeparacionVenta As EseparacionVenta) As List(Of EseparacionVenta)
        Dim ventas As List(Of EseparacionVenta) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_venta_reporte", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pSeparacionVenta.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pSeparacionVenta.idEtapa
                cmd.Parameters.Add("@idVendedor", SqlDbType.Int).Value = pSeparacionVenta.idVendedor
                cmd.Parameters.Add("@fchInicio", SqlDbType.Char, 10).Value = pSeparacionVenta.fchInicio
                cmd.Parameters.Add("@fchFin", SqlDbType.Char, 10).Value = pSeparacionVenta.fchFin
                cmd.Parameters.Add("@filtro", SqlDbType.VarChar, 55).Value = pSeparacionVenta.filtro
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            ventas = New List(Of EseparacionVenta)
                            Dim vendedor As EseparacionVenta = Nothing 'tipo 
                            Do While dr.Read
                                vendedor = New EseparacionVenta( _
                                    dr.GetInt32(dr.GetOrdinal("idProyecto")), _
                                    dr.GetInt32(dr.GetOrdinal("idEtapa")), _
                                    dr.GetInt32(dr.GetOrdinal("idSeparacionVenta")), _
                                    dr.GetString(dr.GetOrdinal("fchVenta")), _
                                    dr.GetString(dr.GetOrdinal("nombre")), _
                                    dr.GetString(dr.GetOrdinal("apePaterno")), _
                                    dr.GetString(dr.GetOrdinal("apeMaterno")), _
                                    dr.GetString(dr.GetOrdinal("razonSocial")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoDcmto")), _
                                    dr.GetString(dr.GetOrdinal("descTpoDcmto")), _
                                    dr.GetString(dr.GetOrdinal("nroDocumento")), _
                                    dr.GetString(dr.GetOrdinal("telefonoFijo")), _
                                    dr.GetString(dr.GetOrdinal("telefonoCelular")), _
                                    dr.GetDecimal(dr.GetOrdinal("totalPrecioVenta")), _
                                    dr.GetDecimal(dr.GetOrdinal("totalSeparacion")), _
                                    dr.GetString(dr.GetOrdinal("fchSeparacion")), _
                                    dr.GetDecimal(dr.GetOrdinal("ctaInicial")), _
                                    dr.GetDecimal(dr.GetOrdinal("saldo")), _
                                    dr.GetString(dr.GetOrdinal("descFormaPago")), _
                                    dr.GetString(dr.GetOrdinal("descEntidadFin")), _
                                    dr.GetString(dr.GetOrdinal("fchVencimiento")), _
                                    dr.GetDecimal(dr.GetOrdinal("financiamiento")), _
                                    dr.GetString(dr.GetOrdinal("observacion")))
                                ventas.Add(vendedor)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return ventas
    End Function

    '-------    MENU REPORTE TEMPORAL    ------------'
    Public Shared Function ReporteSeparacionTemporal(ByVal descEmpresa As String, ByVal pSeparacionVenta As EseparacionVenta) As List(Of EseparacionVenta)
        Dim proformas As List(Of EseparacionVenta) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_separacionTemp_rpt", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pSeparacionVenta.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pSeparacionVenta.idEtapa
                cmd.Parameters.Add("@idVendedor", SqlDbType.Int).Value = pSeparacionVenta.idVendedor
                cmd.Parameters.Add("@fchInicio", SqlDbType.Char, 10).Value = pSeparacionVenta.fchInicio
                cmd.Parameters.Add("@fchFin", SqlDbType.Char, 10).Value = pSeparacionVenta.fchFin
                cmd.Parameters.Add("@filtro", SqlDbType.VarChar, 55).Value = pSeparacionVenta.filtro
                cmd.Parameters.Add("@estado", SqlDbType.Char, 1).Value = pSeparacionVenta.estado
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            proformas = New List(Of EseparacionVenta)
                            Dim vendedor As EseparacionVenta = Nothing 'tipo 
                            Do While dr.Read
                                vendedor = New EseparacionVenta( _
                                    dr.GetInt32(dr.GetOrdinal("idProyecto")), _
                                    dr.GetInt32(dr.GetOrdinal("idEtapa")), _
                                    dr.GetInt32(dr.GetOrdinal("idSeparacionVenta")), _
                                    dr.GetString(dr.GetOrdinal("fchOperSep")), _
                                    dr.GetString(dr.GetOrdinal("nombre")), _
                                    dr.GetString(dr.GetOrdinal("apePaterno")), _
                                    dr.GetString(dr.GetOrdinal("apeMaterno")), _
                                    dr.GetString(dr.GetOrdinal("razonSocial")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoDcmto")), _
                                    dr.GetString(dr.GetOrdinal("descTpoDcmto")), _
                                    dr.GetString(dr.GetOrdinal("nroDocumento")), _
                                    dr.GetString(dr.GetOrdinal("telefonoFijo")), _
                                    dr.GetString(dr.GetOrdinal("telefonoCelular")), _
                                    dr.GetDecimal(dr.GetOrdinal("totalPrecioVenta")), _
                                    dr.GetDecimal(dr.GetOrdinal("totalSeparacion")), _
                                    dr.GetDecimal(dr.GetOrdinal("ctaInicial")), _
                                    dr.GetString(dr.GetOrdinal("descFormaPago")), _
                                    dr.GetString(dr.GetOrdinal("descEntidadFin")), _
                                    dr.GetString(dr.GetOrdinal("fchVencimiento")), _
                                    dr.GetDecimal(dr.GetOrdinal("financiamiento")), _
                                    dr.GetDecimal(dr.GetOrdinal("saldo")), _
                                    dr.GetDecimal(dr.GetOrdinal("adicional")), _
                                    dr.GetDecimal(dr.GetOrdinal("descuento")), _
                                    dr.GetDecimal(dr.GetOrdinal("total")), _
                                    dr.GetString(dr.GetOrdinal("observacion")), _
                                    dr.GetString(dr.GetOrdinal("estado")), _
                                    dr.GetInt32(dr.GetOrdinal("idUsuario")))
                                proformas.Add(vendedor)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return proformas
    End Function

    '-------    MENU REPORTE SEPARACION LEGAL     ------------'
    Public Shared Function ReporteSeparacionLegal(ByVal descEmpresa As String, ByVal pSeparacionVenta As EseparacionVenta) As List(Of EseparacionVenta)
        Dim proformas As List(Of EseparacionVenta) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_separacionLegal_rpt", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pSeparacionVenta.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pSeparacionVenta.idEtapa
                cmd.Parameters.Add("@idVendedor", SqlDbType.Int).Value = pSeparacionVenta.idVendedor
                cmd.Parameters.Add("@fchInicio", SqlDbType.Char, 10).Value = pSeparacionVenta.fchInicio
                cmd.Parameters.Add("@fchFin", SqlDbType.Char, 10).Value = pSeparacionVenta.fchFin
                cmd.Parameters.Add("@filtro", SqlDbType.VarChar, 55).Value = pSeparacionVenta.filtro
                cmd.Parameters.Add("@estado", SqlDbType.Char, 1).Value = pSeparacionVenta.estado
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            proformas = New List(Of EseparacionVenta)
                            Dim vendedor As EseparacionVenta = Nothing 'tipo 
                            Do While dr.Read
                                vendedor = New EseparacionVenta( _
                                    dr.GetInt32(dr.GetOrdinal("idProyecto")), _
                                    dr.GetInt32(dr.GetOrdinal("idEtapa")), _
                                    dr.GetInt32(dr.GetOrdinal("idSeparacionVenta")), _
                                    dr.GetString(dr.GetOrdinal("fchOperSep")), _
                                    dr.GetString(dr.GetOrdinal("nombre")), _
                                    dr.GetString(dr.GetOrdinal("apePaterno")), _
                                    dr.GetString(dr.GetOrdinal("apeMaterno")), _
                                    dr.GetString(dr.GetOrdinal("razonSocial")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoDcmto")), _
                                    dr.GetString(dr.GetOrdinal("descTpoDcmto")), _
                                    dr.GetString(dr.GetOrdinal("nroDocumento")), _
                                    dr.GetString(dr.GetOrdinal("telefonoFijo")), _
                                    dr.GetString(dr.GetOrdinal("telefonoCelular")), _
                                    dr.GetDecimal(dr.GetOrdinal("totalPrecioVenta")), _
                                    dr.GetDecimal(dr.GetOrdinal("totalSeparacion")), _
                                    dr.GetDecimal(dr.GetOrdinal("ctaInicial")), _
                                    dr.GetString(dr.GetOrdinal("descFormaPago")), _
                                    dr.GetString(dr.GetOrdinal("descEntidadFin")), _
                                    dr.GetString(dr.GetOrdinal("fchVencimiento")), _
                                    dr.GetDecimal(dr.GetOrdinal("financiamiento")), _
                                    dr.GetDecimal(dr.GetOrdinal("saldo")), _
                                    dr.GetDecimal(dr.GetOrdinal("adicional")), _
                                    dr.GetDecimal(dr.GetOrdinal("descuento")), _
                                    dr.GetDecimal(dr.GetOrdinal("total")), _
                                    dr.GetString(dr.GetOrdinal("observacion")), _
                                    dr.GetString(dr.GetOrdinal("estado")), _
                                    dr.GetInt32(dr.GetOrdinal("idUsuario")))
                                proformas.Add(vendedor)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return proformas
    End Function

    '-------    MENU REPORTE SEPARACION COMERCIAL     ------------'
    Public Shared Function ReporteSeparacionComercial(ByVal descEmpresa As String, ByVal pSeparacionVenta As EseparacionVenta) As List(Of EseparacionVenta)
        Dim proformas As List(Of EseparacionVenta) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_separacionComercial_rpt", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pSeparacionVenta.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pSeparacionVenta.idEtapa
                cmd.Parameters.Add("@idVendedor", SqlDbType.Int).Value = pSeparacionVenta.idVendedor
                cmd.Parameters.Add("@fchInicio", SqlDbType.Char, 10).Value = pSeparacionVenta.fchInicio
                cmd.Parameters.Add("@fchFin", SqlDbType.Char, 10).Value = pSeparacionVenta.fchFin
                cmd.Parameters.Add("@filtro", SqlDbType.VarChar, 55).Value = pSeparacionVenta.filtro
                cmd.Parameters.Add("@estado", SqlDbType.Char, 1).Value = pSeparacionVenta.estado
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            proformas = New List(Of EseparacionVenta)
                            Dim vendedor As EseparacionVenta = Nothing 'tipo 
                            Do While dr.Read
                                vendedor = New EseparacionVenta( _
                                    dr.GetInt32(dr.GetOrdinal("idProyecto")), _
                                    dr.GetInt32(dr.GetOrdinal("idEtapa")), _
                                    dr.GetInt32(dr.GetOrdinal("idSeparacionVenta")), _
                                    dr.GetString(dr.GetOrdinal("fchOperSep")), _
                                    dr.GetString(dr.GetOrdinal("nombre")), _
                                    dr.GetString(dr.GetOrdinal("apePaterno")), _
                                    dr.GetString(dr.GetOrdinal("apeMaterno")), _
                                    dr.GetString(dr.GetOrdinal("razonSocial")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoDcmto")), _
                                    dr.GetString(dr.GetOrdinal("descTpoDcmto")), _
                                    dr.GetString(dr.GetOrdinal("nroDocumento")), _
                                    dr.GetString(dr.GetOrdinal("telefonoFijo")), _
                                    dr.GetString(dr.GetOrdinal("telefonoCelular")), _
                                    dr.GetDecimal(dr.GetOrdinal("totalPrecioVenta")), _
                                    dr.GetDecimal(dr.GetOrdinal("totalSeparacion")), _
                                    dr.GetDecimal(dr.GetOrdinal("ctaInicial")), _
                                    dr.GetString(dr.GetOrdinal("descFormaPago")), _
                                    dr.GetString(dr.GetOrdinal("descEntidadFin")), _
                                    dr.GetString(dr.GetOrdinal("fchVencimiento")), _
                                    dr.GetDecimal(dr.GetOrdinal("financiamiento")), _
                                    dr.GetDecimal(dr.GetOrdinal("saldo")), _
                                    dr.GetDecimal(dr.GetOrdinal("adicional")), _
                                    dr.GetDecimal(dr.GetOrdinal("descuento")), _
                                    dr.GetDecimal(dr.GetOrdinal("total")), _
                                    dr.GetString(dr.GetOrdinal("observacion")), _
                                    dr.GetString(dr.GetOrdinal("estado")), _
                                    dr.GetInt32(dr.GetOrdinal("idUsuario")))
                                proformas.Add(vendedor)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return proformas
    End Function

    '-------    MENU REPORTE PENDIENTES DE PAGOS ENCABEZADO ------------'
    <Obsolete("Método obsoleto. Usar ReportePendientesPagosBest")> _
    Public Shared Function ReportePendientesPagos(ByVal descEmpresa As String, ByVal pSeparacionVenta As EseparacionVenta) As List(Of EseparacionVenta)
        Dim proformas As List(Of EseparacionVenta) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_pendientePagos_rpt", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pSeparacionVenta.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pSeparacionVenta.idEtapa
                cmd.Parameters.Add("@fchInicio", SqlDbType.Char, 10).Value = pSeparacionVenta.fchInicio
                cmd.Parameters.Add("@fchFin", SqlDbType.Char, 10).Value = pSeparacionVenta.fchFin
                cmd.Parameters.Add("@idVendedor", SqlDbType.Int).Value = pSeparacionVenta.idVendedor
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            proformas = New List(Of EseparacionVenta)
                            Dim vendedor As EseparacionVenta = Nothing 'tipo 
                            Do While dr.Read
                                vendedor = New EseparacionVenta( _
                                    dr.GetInt64(dr.GetOrdinal("correlativo")), _
                                    dr.GetInt32(dr.GetOrdinal("idProyecto")), _
                                    dr.GetInt32(dr.GetOrdinal("idEtapa")), _
                                    dr.GetInt32(dr.GetOrdinal("idSeparacionVenta")), _
                                    dr.GetString(dr.GetOrdinal("fchSeparacion")), _
                                    dr.GetString(dr.GetOrdinal("descGestion")), _
                                    dr.GetString(dr.GetOrdinal("nombre")), _
                                    dr.GetString(dr.GetOrdinal("apePaterno")), _
                                    dr.GetString(dr.GetOrdinal("apeMaterno")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoDcmto")), _
                                    dr.GetString(dr.GetOrdinal("nroDocumento")), _
                                    dr.GetString(dr.GetOrdinal("telefonoFijo")), _
                                    dr.GetString(dr.GetOrdinal("telefonoCelular")), _
                                    dr.GetString(dr.GetOrdinal("descTpoInmueble")), _
                                    dr.GetString(dr.GetOrdinal("nomEdiMzn")), _
                                    dr.GetInt32(dr.GetOrdinal("idUndInmob")), _
                                    dr.GetString(dr.GetOrdinal("nroInmueble")), _
                                    dr.GetDecimal(dr.GetOrdinal("ctaInicial")), _
                                    dr.GetString(dr.GetOrdinal("fchInicial")), _
                                    dr.GetDecimal(dr.GetOrdinal("financiamiento")), _
                                    dr.GetString(dr.GetOrdinal("fchFinanciamiento")), _
                                    dr.GetInt32(dr.GetOrdinal("idFormaPago")), _
                                    dr.GetString(dr.GetOrdinal("descFormaPago")), _
                                    dr.GetString(dr.GetOrdinal("descEntidadFin")))
                                proformas.Add(vendedor)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return proformas
    End Function
    Public Shared Function ReportePendientesPagosBest(ByVal descEmpresa As String, ByVal pSeparacionVenta As EseparacionVenta) As List(Of EseparacionVenta)
        Dim proformas As List(Of EseparacionVenta) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_pendientePagos_rpt", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pSeparacionVenta.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pSeparacionVenta.idEtapa
                cmd.Parameters.Add("@fchInicio", SqlDbType.Char, 10).Value = pSeparacionVenta.fchInicio
                cmd.Parameters.Add("@fchFin", SqlDbType.Char, 10).Value = pSeparacionVenta.fchFin
                cmd.Parameters.Add("@idVendedor", SqlDbType.Int).Value = pSeparacionVenta.idVendedor
                cmd.Parameters.Add("@tpoGestion", SqlDbType.Int).Value = pSeparacionVenta.tpoGestion
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            proformas = New List(Of EseparacionVenta)
                            Dim vendedor As EseparacionVenta = Nothing 'tipo 
                            Do While dr.Read
                                vendedor = New EseparacionVenta( _
                                    dr.GetInt64(dr.GetOrdinal("correlativo")), _
                                    dr.GetInt32(dr.GetOrdinal("idSeparacionVenta")), _
                                    dr.GetInt32(dr.GetOrdinal("idPenMor")), _
                                    dr.GetString(dr.GetOrdinal("fchSeparacion")), _
                                    dr.GetString(dr.GetOrdinal("descGestion")), _
                                    dr.GetString(dr.GetOrdinal("nombre")), _
                                    dr.GetString(dr.GetOrdinal("apePaterno")), _
                                    dr.GetString(dr.GetOrdinal("apeMaterno")), _
                                    dr.GetString(dr.GetOrdinal("nroDocumento")), _
                                    dr.GetString(dr.GetOrdinal("telefonoFijo")), _
                                    dr.GetString(dr.GetOrdinal("telefonoCelular")), _
                                    dr.GetString(dr.GetOrdinal("detalle")), _
                                    dr.GetDecimal(dr.GetOrdinal("montoDeuda")), _
                                    dr.GetString(dr.GetOrdinal("descEntidadFin")))
                                proformas.Add(vendedor)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return proformas
    End Function

    '-------    MENU REPORTE INGRESOS POR DEPOSITOS ---------'
    Public Shared Function ReporteIngresosDeposito(ByVal descEmpresa As String, ByVal pSeparacionVenta As EseparacionVenta) As List(Of EseparacionVenta)
        Dim proformas As List(Of EseparacionVenta) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_ingresosXDeposito_rpt", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pSeparacionVenta.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pSeparacionVenta.idEtapa
                cmd.Parameters.Add("@fchInicio", SqlDbType.Char, 10).Value = pSeparacionVenta.fchInicio
                cmd.Parameters.Add("@fchFin", SqlDbType.Char, 10).Value = pSeparacionVenta.fchFin
                cmd.Parameters.Add("@idVendedor", SqlDbType.Int).Value = pSeparacionVenta.idVendedor
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            proformas = New List(Of EseparacionVenta)
                            Dim vendedor As EseparacionVenta = Nothing 'tipo 
                            Do While dr.Read
                                vendedor = New EseparacionVenta( _
                                    dr.GetInt64(dr.GetOrdinal("correlativo")), _
                                    dr.GetInt32(dr.GetOrdinal("idSeparacionVenta")), _
                                    dr.GetString(dr.GetOrdinal("fchSeparacion")), _
                                    dr.GetString(dr.GetOrdinal("descGestion")), _
                                    dr.GetString(dr.GetOrdinal("nombre")), _
                                    dr.GetString(dr.GetOrdinal("apePaterno")), _
                                    dr.GetString(dr.GetOrdinal("apeMaterno")), _
                                    dr.GetString(dr.GetOrdinal("nroDocumento")), _
                                    dr.GetString(dr.GetOrdinal("telefonoFijo")), _
                                    dr.GetString(dr.GetOrdinal("telefonoCelular")), _
                                    dr.GetString(dr.GetOrdinal("detalle")), _
                                    dr.GetDecimal(dr.GetOrdinal("totalSeparacion")), _
                                    dr.GetDecimal(dr.GetOrdinal("ctaInicial")), _
                                    dr.GetString(dr.GetOrdinal("fchCtaInicial")), _
                                    dr.GetString(dr.GetOrdinal("descFormaPagoInicial")), _
                                    dr.GetDecimal(dr.GetOrdinal("saldoFin")), _
                                    dr.GetString(dr.GetOrdinal("fchSaldoFin")), _
                                    dr.GetString(dr.GetOrdinal("descFormaPagoSaldo")), _
                                    dr.GetString(dr.GetOrdinal("descEntidadFin")))
                                proformas.Add(vendedor)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return proformas
    End Function

    '-------   MENU ATENCION CLIENTE  ------'
    Public Shared Function SeleccionarXCliente(ByVal descEmpresa As String, ByVal pSeparacionVenta As EseparacionVenta) As List(Of EseparacionVenta)
        Dim separacionVentas As List(Of EseparacionVenta) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_separacionVenta_selXCliente", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pSeparacionVenta.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pSeparacionVenta.idEtapa
                cmd.Parameters.Add("@nroDocumento", SqlDbType.Char, 11).Value = pSeparacionVenta.Ecliente.nroDocumento
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            separacionVentas = New List(Of EseparacionVenta)
                            Dim separacionVenta As EseparacionVenta = Nothing
                            Do While dr.Read
                                separacionVenta = New EseparacionVenta( _
                                    dr.GetInt32(dr.GetOrdinal("idProyecto")), _
                                    dr.GetString(dr.GetOrdinal("descProyecto")), _
                                    dr.GetInt32(dr.GetOrdinal("idEtapa")), _
                                    dr.GetString(dr.GetOrdinal("descEtapa")), _
                                    dr.GetInt32(dr.GetOrdinal("idSeparacionVenta")), _
                                    dr.GetString(dr.GetOrdinal("fchSeparacion")), _
                                    dr.GetInt32(dr.GetOrdinal("idVendedor")), _
                                    dr.GetString(dr.GetOrdinal("nombre")), _
                                    dr.GetString(dr.GetOrdinal("apePaterno")), _
                                    dr.GetString(dr.GetOrdinal("apeMaterno")), _
                                    dr.GetDecimal(dr.GetOrdinal("totalSeparacion")), _
                                    dr.GetString(dr.GetOrdinal("fchVencimiento")), _
                                    dr.GetDecimal(dr.GetOrdinal("ctaInicial")), _
                                    dr.GetDecimal(dr.GetOrdinal("financiamiento")), _
                                    dr.GetDecimal(dr.GetOrdinal("saldo")), _
                                    dr.GetDecimal(dr.GetOrdinal("total")), _
                                    dr.GetString(dr.GetOrdinal("descGestion")), _
                                    dr.GetString(dr.GetOrdinal("observacion")))
                                separacionVentas.Add(separacionVenta)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return separacionVentas
    End Function

    '-------   MENU AHORRO PREVIO  ------'
    Public Shared Function SeleccionarAhorroPrevio(ByVal descEmpresa As String, ByVal pSeparacionVenta As EseparacionVenta, ByVal filtro As String) As List(Of EseparacionVenta)
        Dim ahorrosPrevios As List(Of EseparacionVenta) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_separacionVenta_selAhorroPrevio", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pSeparacionVenta.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pSeparacionVenta.idEtapa
                cmd.Parameters.Add("@filtro", SqlDbType.VarChar, 55).Value = filtro
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            ahorrosPrevios = New List(Of EseparacionVenta)
                            Dim ahorroPrevio As EseparacionVenta = Nothing
                            Do While dr.Read
                                ahorroPrevio = New EseparacionVenta( _
                                    dr.GetInt32(dr.GetOrdinal("idProyecto")), _
                                    dr.GetString(dr.GetOrdinal("descProyecto")), _
                                    dr.GetInt32(dr.GetOrdinal("idEtapa")), _
                                    dr.GetString(dr.GetOrdinal("descEtapa")), _
                                    dr.GetInt32(dr.GetOrdinal("idSeparacionVenta")), _
                                    dr.GetString(dr.GetOrdinal("fchSeparacion")), _
                                    dr.GetInt32(dr.GetOrdinal("idVendedor")), _
                                    dr.GetString(dr.GetOrdinal("nombre")), _
                                    dr.GetString(dr.GetOrdinal("apePaterno")), _
                                    dr.GetString(dr.GetOrdinal("apeMaterno")), _
                                    dr.GetDecimal(dr.GetOrdinal("totalSeparacion")), _
                                    dr.GetString(dr.GetOrdinal("fchVencimiento")), _
                                    dr.GetDecimal(dr.GetOrdinal("ctaInicial")), _
                                    dr.GetDecimal(dr.GetOrdinal("financiamiento")), _
                                    dr.GetDecimal(dr.GetOrdinal("saldo")), _
                                    dr.GetDecimal(dr.GetOrdinal("total")), _
                                    dr.GetString(dr.GetOrdinal("descGestion")), _
                                    dr.GetString(dr.GetOrdinal("observacion")))
                                ahorrosPrevios.Add(ahorroPrevio)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return ahorrosPrevios
    End Function

    '-------   MENU COBRANZA  ------------'
    Public Shared Function SeleccionarXCobranza(ByVal descEmpresa As String, ByVal pSeparacionVenta As EseparacionVenta) As List(Of EseparacionVenta)
        Dim cobranzas As List(Of EseparacionVenta) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_cobranza_sel", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pSeparacionVenta.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pSeparacionVenta.idEtapa
                cmd.Parameters.Add("@nroDocumento", SqlDbType.Char, 11).Value = pSeparacionVenta.nroDocumento
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            cobranzas = New List(Of EseparacionVenta)
                            Dim cobranza As EseparacionVenta = Nothing
                            Do While dr.Read
                                cobranza = New EseparacionVenta( _
                                    dr.GetInt32(dr.GetOrdinal("idSeparacionVenta")), _
                                    dr.GetString(dr.GetOrdinal("detalle")))
                                cobranzas.Add(cobranza)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return cobranzas
    End Function
    Public Shared Function EditarSeparacionPagoFileScan(ByVal descEmpresa As String, ByVal pSepracionVenta As EseparacionVenta) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_separacionVenta_editXFileScan", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pSepracionVenta.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pSepracionVenta.idEtapa
                cmd.Parameters.Add("@idSeparacionVenta", SqlDbType.Int).Value = pSepracionVenta.idSeparacionVenta
                cmd.Parameters.Add("@rutaScannerSeparacion", SqlDbType.VarChar, 80).Value = pSepracionVenta.rutaScannerSeparacion
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pSepracionVenta.idUsuario
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function
    '-------------------------------------'

End Class
